<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2016 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: 流年 <liu21st@gmail.com>
// +----------------------------------------------------------------------

// 应用公共文件

//获取ip
function get_ip(){
	$ip = $_SERVER['REMOTE_ADDR'];
	return $ip;
}
function from_url(){
	$from_url = $_SERVER['HTTP_REFERER'];
	return $from_url;
}

function get_url(){
	$get_url = $_SERVER["REQUEST_URI"];
	return $get_url;
}

//curl网址
function curl($url){
	$ch  =  curl_init ();
	curl_setopt($ch,CURLOPT_TIMEOUT,60);		//最长秒数
	curl_setopt($ch, CURLOPT_URL, $url);		//访问的url
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);		//禁用后cURL将终止从服务端进行验证。	
	curl_setopt($ch, CURLOPT_HEADER, FALSE);		//启用时会将头文件的信息作为数据流输出。
	curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);	//将curl_exec()获取的信息以文件流的形式返回，而不是直接输出。 
	$res = curl_exec ($ch);
	curl_close ($ch);
	return $res;
}
//curl网址 数据
function postCurl($url,$data,$header = null){
	$ch = curl_init ();
	curl_setopt($ch,CURLOPT_TIMEOUT,60);		//最长秒数
	curl_setopt($ch, CURLOPT_URL, $url);		//访问的url
	curl_setopt($ch, CURLOPT_POST, 1 );		//启用时会发送一个常规的POST请求
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);		//禁用后cURL将终止从服务端进行验证。	
	curl_setopt($ch, CURLOPT_HEADER, FALSE);		//启用时会将头文件的信息作为数据流输出。
	curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);	//将curl_exec()获取的信息以文件流的形式返回，而不是直接输出。 
	if ($header !== null) {
		curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
	}
	
	//php7.0 curl post文件需要用CURLFile类
	if (is_array($data)) {
		foreach ($data as $key => $value) {
			if (!is_array($value) && strpos($value,'@') !== FALSE) {
				$file=str_replace('@', '',$value);
				$data[$key]=curl_file_create(str_replace('@', '',$value));
			}
		}
		curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
	} else {
		curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
	}
	$res = curl_exec ( $ch );
	curl_close ($ch);
	return $res;
}

//curl网址 数据
function sslPostCurl($url,$data,$cert,$key){
    $ch = curl_init ();
    curl_setopt($ch,CURLOPT_TIMEOUT,60);        //最长秒数
    curl_setopt($ch, CURLOPT_URL, $url);        //访问的url
    curl_setopt($ch, CURLOPT_POST, 1 );     //启用时会发送一个常规的POST请求
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);        //禁用后cURL将终止从服务端进行验证。   
    curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);
    curl_setopt($ch, CURLOPT_HEADER, FALSE);        //启用时会将头文件的信息作为数据流输出。
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);   //将curl_exec()获取的信息以文件流的形式返回，而不是直接输出。 
    
    curl_setopt($ch,CURLOPT_SSLCERT,$cert);
    curl_setopt($ch,CURLOPT_SSLKEY,$key);

    //php7.0 curl post文件需要用CURLFile类
    if (is_array($data)) {
        foreach ($data as $key => $value) {
            if (!is_array($value) && strpos($value,'@') !== FALSE) {
                $file=str_replace('@', '',$value);
                $data[$key]=curl_file_create(str_replace('@', '',$value));
            }
        }
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
    } else {
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    }
    $res = curl_exec ( $ch );
    curl_close ($ch);
    return $res;
}

//curl网址 数据
function backPostCurl($url,$data){
	$ch = curl_init ();
	curl_setopt($ch,CURLOPT_TIMEOUT,1);		//最长秒数
	curl_setopt($ch, CURLOPT_URL, $url);		//访问的url
	curl_setopt($ch, CURLOPT_POST, 1 );		//启用时会发送一个常规的POST请求
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);		//禁用后cURL将终止从服务端进行验证。	
	curl_setopt($ch, CURLOPT_HEADER, FALSE);		//启用时会将头文件的信息作为数据流输出。
	curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);	//将curl_exec()获取的信息以文件流的形式返回，而不是直接输出。 
	//php7.0 curl post文件需要用CURLFile类
	if (is_array($data)) {
		foreach ($data as $key => $value) {
			if (!is_array($value) && strpos($value,'@') !== FALSE) {
				$file=str_replace('@', '',$value);
				$data[$key]=curl_file_create(str_replace('@', '',$value));
			}
		}
	}
	curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));	//全部数据使用HTTP协议中的"POST"操作来发送。要发送文件，在文件名前面加上@前缀并使用完整路径。
	$res = curl_exec ( $ch );
	curl_close ($ch);
	return $res;
}
//导出表格
function phpexcel($title,$data){
	header('Content-Type: application/vnd.ms-excel');
	header('Content-Disposition: attachment; filename=demo.xls');
	header('Pragma: no-cache');
	header('Expires: 0');	
	echo iconv('utf-8', 'gbk', implode("\t", $title)), "\n";
	foreach ($data as $value) {
		echo iconv('utf-8', 'gbk', implode("\t", $value)), "\n";
	}
}

function deleteFile($file)
{
    if (file_exists($file)) {
        if (is_dir($file)) {
            $arr = scandir($file);
            foreach ($arr as $key => $value) {
                if ($value != '.' && $value != '..') {
                    $f = $file.'/'.$value;
                    deleteFile($f);
                }
            }
            rmdir($file);
        }else{
            unlink($file);
        }
    } 
}

//xml转换为数组
function xmlArray($xml){
    $obj = simplexml_load_string($xml);
    foreach ($obj as $key => $value) {
        $array[$key] = (string) $value;
    }
    return $array;
}
//读取csv表格
function readcsv($upload,$num){
	$file = fopen($upload["tmp_name"], 'r');
	$k = 0;
	while ($data = fgetcsv($file)) {
		if (empty($data[0])) {
			break ;
		}else{
			for ($i=0; $i < $num; $i++) { 
				$list[$k][$i] = iconv('gbk', 'utf-8', $data[$i]);	
			}
		}
		$k++;
	}
	fclose($file);
	return $list;
}

//上传文件
function fileUpLoad($upload,$key = null,$width = null,$height = null){
    set_time_limit(0);
    //生成目录
    $dir = config("afs.document_root").'/pub/upload/'.date("Ym");
    if (!is_dir($dir)) {
        mkdir($dir,0700);
    }
    if ($key === null) {    
        //上传文件
        // $filename = date("Ymdhis").mt_rand(10000,99999).'.'.pathinfo($upload["name"],PATHINFO_EXTENSION);

        $filedata = file_get_contents($upload["tmp_name"]);

        $filename = md5($filedata).'.'.pathinfo($upload["name"],PATHINFO_EXTENSION);
        move_uploaded_file($upload["tmp_name"],$dir.'/'.$filename);
    }else{
        //上传文件
        // $filename = date("Ymdhis").mt_rand(10000,99999).'.'.pathinfo($upload["name"][$key],PATHINFO_EXTENSION);

        $filedata = file_get_contents($upload["tmp_name"][$key]);

        $filename = md5($filedata).'.'.pathinfo($upload["name"][$key],PATHINFO_EXTENSION);
        move_uploaded_file($upload["tmp_name"][$key],$dir.'/'.$filename);
    }

    // if (strpos($upload["type"], "image") !== false) {
    //     imageUpLoadOut($width,$height,$filedata,$filename);
    // }

    return '/pub/upload/'.date("Ym").'/'.$filename;
}

// function imageUpLoadOut($width,$height,$filename){
//     $file = imagecreatetruecolor ($width,$height);
//     $size = getimagesizefromstring($filedata);
//     $image = imagecreatefromstring($filedata);
//     imagecopyresampled($file ,$image ,0,0,0,0,100,100,$size[0],$size[1]);
//     imagepng($file,$filename);
// }


//颜色转换
function hexToRgb($hex){
    $hex = str_replace("#", "", $hex);
    if(strlen($hex) == 3) {
        $r = hexdec(substr($hex,0,1).substr($hex,0,1));
        $g = hexdec(substr($hex,1,1).substr($hex,1,1));
        $b = hexdec(substr($hex,2,1).substr($hex,2,1));
    } else {
        $r = hexdec(substr($hex,0,2));
        $g = hexdec(substr($hex,2,2));
        $b = hexdec(substr($hex,4,2));
    }
    return array($r, $g, $b);
}
//颜色转换
function rgbToHex($rgb){
    $hex = "#";
    foreach ($rgb as $key => $value) {
        $num = dechex($value);
        if (strlen($num) == 1) {
            $num = "0".$num;
        }
        $hex .= $num;
    }
    return $hex;
}
//颜色渐变
function changeColor($start,$end,$num){
    $startRgb = hexToRgb($start);
    $endRgb = hexToRgb($end);
    foreach ($endRgb as $key => $value) {
        $differ[$key] = ($value - $startRgb[$key]) / $num;;
    }

    for ($i=0; $i < $num; $i++) { 
        foreach ($startRgb as $key => $value) {
            $color[$key] = $value + $differ[$key] * $i;
        }
        $colorArr[] = rgbToHex($color);
    }
    return $colorArr;
}

//日期函数
function china_year($year){
	$year = (string) $year;
	$yearArr = ["零","一","二","三","四","五","六","七","八","九"];
	$data = '';
	for ($i=0; $i < strlen($year); $i++) { 
		$data .= $yearArr[$year[$i]];
	}
	return $data;
}

function china_num($num){
	$numArr = ["零","一","二","三","四","五","六","七","八","九","十","十一","十二","十三","十四","十五","十六","十七","十八","十九","二十","二十一","二十二","二十三","二十四","二十五","二十六","二十七","二十八","二十九","三十","三十一"];
	return $numArr[$num];
}

function china_week($num){
	$weekArr = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六","星期日"];
	return $weekArr[$num];
}

function china_data($time){
	$year = date("Y",$time);
	$month = date("n",$time);
	$day = date("j",$time);
	$week = date("N",$time);

	$data["year"] = china_year($year);
	$data["month"] = china_num($month);
	$data["day"] = china_num($day);
	$data["week"] = china_week($week);
	return $data;
}

function getchinesedate($year,$month,$day){
    $cdate_monthdata=array( 
        0=>array(8,0,0,0,0,0,0,0,0,0,0,0,29,30,7,1), 
        1=>array(0,29,30,29,29,30,29,30,29,30,30,30,29,0,8,2), 
        2=>array(0,30,29,30,29,29,30,29,30,29,30,30,30,0,9,3), 
        3=>array(5,29,30,29,30,29,29,30,29,29,30,30,29,30,10,4), 
        4=>array(0,30,30,29,30,29,29,30,29,29,30,30,29,0,1,5), 
        5=>array(0,30,30,29,30,30,29,29,30,29,30,29,30,0,2,6), 
        6=>array(4,29,30,30,29,30,29,30,29,30,29,30,29,30,3,7), 
        7=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,4,8), 
        8=>array(0,30,29,29,30,30,29,30,29,30,30,29,30,0,5,9), 
        9=>array(2,29,30,29,29,30,29,30,29,30,30,30,29,30,6,10), 
        10=>array(0,29,30,29,29,30,29,30,29,30,30,30,29,0,7,11), 
        11=>array(6,30,29,30,29,29,30,29,29,30,30,29,30,30,8,12), 
        12=>array(0,30,29,30,29,29,30,29,29,30,30,29,30,0,9,1), 
        13=>array(0,30,30,29,30,29,29,30,29,29,30,29,30,0,10,2), 
        14=>array(5,30,30,29,30,29,30,29,30,29,30,29,29,30,1,3), 
        15=>array(0,30,29,30,30,29,30,29,30,29,30,29,30,0,2,4), 
        16=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,3,5), 
        17=>array(2,30,29,29,30,29,30,30,29,30,30,29,30,29,4,6), 
        18=>array(0,30,29,29,30,29,30,29,30,30,29,30,30,0,5,7), 
        19=>array(7,29,30,29,29,30,29,29,30,30,29,30,30,30,6,8), 
        20=>array(0,29,30,29,29,30,29,29,30,30,29,30,30,0,7,9), 
        21=>array(0,30,29,30,29,29,30,29,29,30,29,30,30,0,8,10), 
        22=>array(5,30,29,30,30,29,29,30,29,29,30,29,30,30,9,11), 
        23=>array(0,29,30,30,29,30,29,30,29,29,30,29,30,0,10,12), 
        24=>array(0,29,30,30,29,30,30,29,30,29,30,29,29,0,1,1), 
        25=>array(4,30,29,30,29,30,30,29,30,30,29,30,29,30,2,2), 
        26=>array(0,29,29,30,29,30,29,30,30,29,30,30,29,0,3,3), 
        27=>array(0,30,29,29,30,29,30,29,30,29,30,30,30,0,4,4), 
        28=>array(2,29,30,29,29,30,29,29,30,29,30,30,30,30,5,5), 
        29=>array(0,29,30,29,29,30,29,29,30,29,30,30,30,0,6,6), 
        30=>array(6,29,30,30,29,29,30,29,29,30,29,30,30,29,7,7), 
        31=>array(0,30,30,29,30,29,30,29,29,30,29,30,29,0,8,8), 
        32=>array(0,30,30,30,29,30,29,30,29,29,30,29,30,0,9,9), 
        33=>array(5,29,30,30,29,30,30,29,30,29,30,29,29,30,10,10), 
        34=>array(0,29,30,29,30,30,29,30,29,30,30,29,30,0,1,11), 
        35=>array(0,29,29,30,29,30,29,30,30,29,30,30,29,0,2,12), 
        36=>array(3,30,29,29,30,29,29,30,30,29,30,30,30,29,3,1), 
        37=>array(0,30,29,29,30,29,29,30,29,30,30,30,29,0,4,2), 
        38=>array(7,30,30,29,29,30,29,29,30,29,30,30,29,30,5,3), 
        39=>array(0,30,30,29,29,30,29,29,30,29,30,29,30,0,6,4), 
        40=>array(0,30,30,29,30,29,30,29,29,30,29,30,29,0,7,5), 
        41=>array(6,30,30,29,30,30,29,30,29,29,30,29,30,29,8,6), 
        42=>array(0,30,29,30,30,29,30,29,30,29,30,29,30,0,9,7), 
        43=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,10,8), 
        44=>array(4,30,29,30,29,30,29,30,29,30,30,29,30,30,1,9), 
        45=>array(0,29,29,30,29,29,30,29,30,30,30,29,30,0,2,10), 
        46=>array(0,30,29,29,30,29,29,30,29,30,30,29,30,0,3,11), 
        47=>array(2,30,30,29,29,30,29,29,30,29,30,29,30,30,4,12), 
        48=>array(0,30,29,30,29,30,29,29,30,29,30,29,30,0,5,1), 
        49=>array(7,30,29,30,30,29,30,29,29,30,29,30,29,30,6,2), 
        50=>array(0,29,30,30,29,30,30,29,29,30,29,30,29,0,7,3), 
        51=>array(0,30,29,30,30,29,30,29,30,29,30,29,30,0,8,4), 
        52=>array(5,29,30,29,30,29,30,29,30,30,29,30,29,30,9,5), 
        53=>array(0,29,30,29,29,30,30,29,30,30,29,30,29,0,10,6), 
        54=>array(0,30,29,30,29,29,30,29,30,30,29,30,30,0,1,7), 
        55=>array(3,29,30,29,30,29,29,30,29,30,29,30,30,30,2,8), 
        56=>array(0,29,30,29,30,29,29,30,29,30,29,30,30,0,3,9), 
        57=>array(8,30,29,30,29,30,29,29,30,29,30,29,30,29,4,10), 
        58=>array(0,30,30,30,29,30,29,29,30,29,30,29,30,0,5,11), 
        59=>array(0,29,30,30,29,30,29,30,29,30,29,30,29,0,6,12), 
        60=>array(6,30,29,30,29,30,30,29,30,29,30,29,30,29,7,1), 
        61=>array(0,30,29,30,29,30,29,30,30,29,30,29,30,0,8,2), 
        62=>array(0,29,30,29,29,30,29,30,30,29,30,30,29,0,9,3), 
        63=>array(4,30,29,30,29,29,30,29,30,29,30,30,30,29,10,4), 
        64=>array(0,30,29,30,29,29,30,29,30,29,30,30,30,0,1,5), 
        65=>array(0,29,30,29,30,29,29,30,29,29,30,30,29,0,2,6), 
        66=>array(3,30,30,30,29,30,29,29,30,29,29,30,30,29,3,7), 
        67=>array(0,30,30,29,30,30,29,29,30,29,30,29,30,0,4,8), 
        68=>array(7,29,30,29,30,30,29,30,29,30,29,30,29,30,5,9), 
        69=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,6,10), 
        70=>array(0,30,29,29,30,29,30,30,29,30,30,29,30,0,7,11), 
        71=>array(5,29,30,29,29,30,29,30,29,30,30,30,29,30,8,12), 
        72=>array(0,29,30,29,29,30,29,30,29,30,30,29,30,0,9,1), 
        73=>array(0,30,29,30,29,29,30,29,29,30,30,29,30,0,10,2), 
        74=>array(4,30,30,29,30,29,29,30,29,29,30,30,29,30,1,3), 
        75=>array(0,30,30,29,30,29,29,30,29,29,30,29,30,0,2,4), 
        76=>array(8,30,30,29,30,29,30,29,30,29,29,30,29,30,3,5), 
        77=>array(0,30,29,30,30,29,30,29,30,29,30,29,29,0,4,6), 
        78=>array(0,30,29,30,30,29,30,30,29,30,29,30,29,0,5,7), 
        79=>array(6,30,29,29,30,29,30,30,29,30,30,29,30,29,6,8), 
        80=>array(0,30,29,29,30,29,30,29,30,30,29,30,30,0,7,9), 
        81=>array(0,29,30,29,29,30,29,29,30,30,29,30,30,0,8,10), 
        82=>array(4,30,29,30,29,29,30,29,29,30,29,30,30,30,9,11), 
        83=>array(0,30,29,30,29,29,30,29,29,30,29,30,30,0,10,12), 
        84=>array(10,30,29,30,30,29,29,30,29,29,30,29,30,30,1,1), 
        85=>array(0,29,30,30,29,30,29,30,29,29,30,29,30,0,2,2), 
        86=>array(0,29,30,30,29,30,30,29,30,29,30,29,29,0,3,3), 
        87=>array(6,30,29,30,29,30,30,29,30,30,29,30,29,29,4,4), 
        88=>array(0,30,29,30,29,30,29,30,30,29,30,30,29,0,5,5), 
        89=>array(0,30,29,29,30,29,29,30,30,29,30,30,30,0,6,6), 
        90=>array(5,29,30,29,29,30,29,29,30,29,30,30,30,30,7,7), 
        91=>array(0,29,30,29,29,30,29,29,30,29,30,30,30,0,8,8), 
        92=>array(0,29,30,30,29,29,30,29,29,30,29,30,30,0,9,9), 
        93=>array(3,29,30,30,29,30,29,30,29,29,30,29,30,29,10,10), 
        94=>array(0,30,30,30,29,30,29,30,29,29,30,29,30,0,1,11), 
        95=>array(8,29,30,30,29,30,29,30,30,29,29,30,29,30,2,12), 
        96=>array(0,29,30,29,30,30,29,30,29,30,30,29,29,0,3,1), 
        97=>array(0,30,29,30,29,30,29,30,30,29,30,30,29,0,4,2), 
        98=>array(5,30,29,29,30,29,29,30,30,29,30,30,29,30,5,3), 
        99=>array(0,30,29,29,30,29,29,30,29,30,30,30,29,0,6,4), 
        100=>array(0,30,30,29,29,30,29,29,30,29,30,30,29,0,7,5), 
        101=>array(4,30,30,29,30,29,30,29,29,30,29,30,29,30,8,6), 
        102=>array(0,30,30,29,30,29,30,29,29,30,29,30,29,0,9,7), 
        103=>array(0,30,30,29,30,30,29,30,29,29,30,29,30,0,10,8), 
        104=>array(2,29,30,29,30,30,29,30,29,30,29,30,29,30,1,9), 
        105=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,2,10), 
        106=>array(7,30,29,30,29,30,29,30,29,30,30,29,30,30,3,11), 
        107=>array(0,29,29,30,29,29,30,29,30,30,30,29,30,0,4,12), 
        108=>array(0,30,29,29,30,29,29,30,29,30,30,29,30,0,5,1), 
        109=>array(5,30,30,29,29,30,29,29,30,29,30,29,30,30,6,2), 
        110=>array(0,30,29,30,29,30,29,29,30,29,30,29,30,0,7,3), 
        111=>array(0,30,29,30,30,29,30,29,29,30,29,30,29,0,8,4), 
        112=>array(4,30,29,30,30,29,30,29,30,29,30,29,30,29,9,5), 
        113=>array(0,30,29,30,29,30,30,29,30,29,30,29,30,0,10,6), 
        114=>array(9,29,30,29,30,29,30,29,30,30,29,30,29,30,1,7), 
        115=>array(0,29,30,29,29,30,29,30,30,30,29,30,29,0,2,8), 
        116=>array(0,30,29,30,29,29,30,29,30,30,29,30,30,0,3,9), 
        117=>array(6,29,30,29,30,29,29,30,29,30,29,30,30,30,4,10), 
        118=>array(0,29,30,29,30,29,29,30,29,30,29,30,30,0,5,11), 
        119=>array(0,30,29,30,29,30,29,29,30,29,29,30,30,0,6,12), 
        120=>array(4,29,30,30,30,29,30,29,29,30,29,30,29,30,7,1) 
    ); 
    $cdate_tianganarray=array("null","Jia","Yi","Bing","Ding","Wu","Ji","Geng","Xin","Ren","Kui"); 
    $cdate_dizhiarray=array("null","Zi","Chou","Yin","Mao","Chen","Si","Wu","Wei","Shen","You","Xu","Hai"); 
    $cdate_zodiacarray=array("null","Rat","Ox","Tiger","Rabbit","Dragon","Snake","Horse","Sheep","Monkey","Rooster","Dog","Pig"); 
    $cdate_total=11; 
    $cdate_cntotal=0; 
    for ($y=1901;$y<$year;$y++){ 
        $cdate_total+=365; 
        if ($y%4==0) $cdate_total ++; 
    } 
    switch ($month){ 
        case 12: 
            $cdate_total+=30; 
        case 11: 
            $cdate_total+=31; 
        case 10: 
            $cdate_total+=30; 
        case 9: 
            $cdate_total+=31; 
        case 8: 
            $cdate_total+=31; 
        case 7: 
            $cdate_total+=30; 
        case 6: 
            $cdate_total+=31; 
        case 5: 
            $cdate_total+=30; 
        case 4: 
            $cdate_total+=31; 
        case 3: 
            $cdate_total+=28; 
        case 2: 
            $cdate_total+=31; 
    } 
 
    if ($year%4==0 and $month>2){ 
        $cdate_total++; 
    } 
    $cdate_total = $cdate_total+($day-1); 
    $myeardiff = $year-1900; 
    for ($x=0;$x<=$myeardiff;$x++){ 
        for ($y=1;$y<=13;$y++){ 
            if ($cdate_cntotal<$cdate_total){ 
                $cdate_cntotal+=$cdate_monthdata[$x][$y]; 
                $cdate_cnyear = $x; 
                $cdate_cnmonth = $y; 
            } 
        } 
    } 
    if (($cdate_cnmonth==$cdate_monthdata[$cdate_cnyear][0]+1)&&($cdate_monthdata[$cdate_cnyear][0]>0)) { 
        $cdate_leap=1; 
    }else{ 
        $cdate_leap=0; 
    } 
    $cdate_cnday=$cdate_monthdata[$cdate_cnyear][$cdate_cnmonth]-($cdate_cntotal-$cdate_total); 
 
    if (($cdate_monthdata[$cdate_cnyear][0]>0)&&($cdate_monthdata[$cdate_cnyear][0]<$cdate_cnmonth)) { 
        $cdate_cnmonth = $cdate_cnmonth-1; 
    } 
    $cdate_tiangan = $cdate_tianganarray[$cdate_monthdata[$cdate_cnyear][14]]; 
    $cdate_dizhi = $cdate_dizhiarray[$cdate_monthdata[$cdate_cnyear][15]]; 
    $cdate_zodiac = $cdate_zodiacarray[$cdate_monthdata[$cdate_cnyear][15]]; 
    $cdate_cnyear += 1900; 
    $cdate_result = array($cdate_cnyear,$cdate_cnmonth,$cdate_cnday,$cdate_leap,$cdate_tiangan,$cdate_dizhi); 
    return $cdate_result; 
} 